Developer Toolbox TOP-21 Hot Stuff List

HUB | Pheedbak | Tree | Topic | A-Z | Search | Hot | New | FAQs | Jumpdoors


TOP-21 HOT RECOMMENDS
from the janitor's tricorder:


last assessed: September 25, 1996



  1. What We Did to Port the Developer Toolbox to IRIX 6.2,
    and, What We Learned About In The Process, Chapter 1

    This document is a record of everything we did to upgrade and then re-compile the DT on IRIX 6.2 with the "bare-bones" o32 option. The reason this is "Chapter 1" is because we have not yet succeeded in cleaning up DT source code so it is n32 capable. By so doing, one can attain full access to 64-bit wide integer registers and 64-bit instructions in a 32-bit address space. It is the janitor's understanding that achieving such n32 "code robustness" is the developer's most basic and significant undertaking in moving to IRIX 6.2 from an IRIX 5 universe. Some of the relevant details about this are described in section 2, The Challenge of n32. Table of Contents includes:
    1. Upgrading the DT machine
    2. The Challenge of n32
    3. o32 and n32 Pointers
    4. What DT Source Code Changed References

  2. OpenGL: FROM THE EXTENSIONS TO THE SOLUTIONS Training Course materials, 2/96
    The "OpenGL: from the EXTensions to the SOLutions" WEB Document's structure follows the path diagram of OpenGL on IMPACT. This diagram can be first divided into two separate graphic operations:
    • Pixel Operations (2D)
      • Pixel Transfers
      • Imaging Operations (colormatrix, convolution, histogram, ... )
      • Texture Transfer
    • Primitive Operations (3D) which render 3D geometry
    These distinct data-flows then merge into the Rasterization stage, which generates Fragments data to be transformed into actual pixel information, which in turn are stored into the Frame Buffer.
    Every stage of this data flow, and associated OpenGL state, is presented with all the relevant OpenGL commands. For the major industry segments, example code illustrating a given market solution are also presented, making use of the latest OpenGL EXTensions. Finally, the OpenGL EXTensions/Specifications/ManPages section wraps up all of the OpenGL accelerators available on IMPACT.

  3. OpenGL on Silicon Graphics Systems 3/96
    explains how to use the OpenGL graphics library on Silicon Graphics Systems. This Manual expands on the OpenGL Programming Guide, which describes implemetation-independent aspects of OpenGL. It discusses these major topics:
    • Integrating OpenGL programs with the X Window System
    • Using OpenGL extensions
    • Debugging OpenGL Programs
    • Achieving maximum performance

  4. Haeberli Universe Subtree:
    including such luminous collections as:
    • pstools, A Collection of PostScript Processing Tools for the IRIS, provides 25 programs (16 new, 3 significantly updated) combining operations with/on PostScript files with IRIS GL.
    • imgscr, 26 new scripts combining the power of different programs in imgtools & pstools to perform extended image processing operations.
    • imgtools, Image Processing Tools for the IRIS, now contains 218 programs (85 new, 27 sig. upd.) including 31 (12 new, 6 sig. upd) convert from and 26 (9 new, 1 sig. upd) convert to SGI imagelib image file format programs.
    • A toolbox-version of Paul's GRAPHICA Obscura, Collected Computer Graphics Hacks, includes extending his Image Production for the Web document with links into the haeberli subtree of all source code the programs described are generated from.
    • fonttools, contains 27 programs (6 new, 4 sig. upd.) combining operations with/on polygonal outline font format files and IRIS GL, and tons of font files in fonts/

  5. The Lurker's Guide to Video 7/23/96
    a repository for the little-known, undocumented knowledge that you need in order to write any sort of video app on SGI machines. Topics explored in great detail include:
    Video in General The VL SGI Video Devices

  6. Optimization for Real-Time Graphics Applications, 2/96,
    Real-time entertainment applications are very sensitive to image quality, performance, and system cost. Graphics workstations provide full product lines with a full range of price points and performance options. At the high end, they provide many traditional Image Generator features such as real-time texture mapping and full scene antialiasing. They can also support many channels, or players, per workstation to offset the cost of getting the high-end features. At the low end, they have entry prices and performance that are often competitive with PCs. Graphics workstations can provide a very powerful, flexible solution with a rich development environment. Additionally, because of binary compatibility across product lines and standards in graphics APIs, graphics workstations offer the possibility of portability of both applications and databases to different and future architectures. However, this power and flexibility increases the complexity for achieving the full quoted performance from such a machine. This paper presents a strategy for performance for developing and tuning real-time graphics applications on graphics workstations.
    The following topics are covered:
    • typical application requirements for graphics workstations
    • multi-processing issues for graphics subsytems
    • graphics workstation pipelines and performance trade-offs
    • strategies for diagnosing pipeline bottlenecks
    • database structure for traversal
    • designing and tuning a real-time application
    • run-time diagnostics and load-management strategies
    • tools for debugging graphics performance
    Developing a designed-for-performance application requires understanding the potential performance problems, identifying which factors are limiting performance, and then making the trade-offs to achieve maximum frame rate with the highest quality scene content.

  7. MIPSpro(TM) N32 ABI Handbook with an N32 overview, 3/96
    This book describes the N32 High Performance 32-bit Application Binary Interface (ABI) for the MIPS architecture. Topics include:
    • Chapter 1, "N32 ABI Overview"
      • "What is N32?," which describes the n32 ABI and compares it with the other MIPS ABIs.
      • "Why We Need a New ABI," which lists the reasons why we need a new ABI.
      • "N32 Migration Requirements," which describes what is required of both SGI and its customers to use the n32 ABI.
    • Chapter 2, "Calling Convention Implementations"
    • Chapter 3, "N32 Compatibility, Porting, and Assembly Language Programming Issues"
    • Chapter 4, "N32 Examples and Case Studies"
    This document uses the following terminology:
      o32 -- The current 32-bit ABI generated by the ucode compiler, that is, 32-bit compilers prior to IRIX 6.1 operating system.
      n32 -- The new 32-bit ABI generated by the MIPSpro 64-bit compiler.
      n64 -- The new 64-bit ABI generated by the MIPSpro 64-bit compiler.

  8. MIPSpro(TM) Compiling and Performance Tuning Guide, 3/96
    This guide discusses a variety of issues and tools involved in programming under the IRIX operating system. It describes the components of MIPSpro compiler system, other programming tools and interfaces, and dynamic shared objects. It also explains ways to improve program performance.
    The compiler system produces either 64-bit object code, new 32-bit (n32) object code, or old 32-bit object code. This guide describes the MIPSpro compilers that produce n32-bit and 64-bit objects. For additional information about n32, see the MIPSpro N32 ABI Handbook. For information about compilers that produce old 32-bit objects, refer to the MIPS Compiling and Performance Tuning Guide.

  9. The OpenGL Utility Toolkit (GLUT) 3.1 distribution (with API manual), PLUS
      GLUT articles from the OpenGL and X column in The X Journal:
    1. Column 1: An OpenGL Toolkit, 12/94
    2. Column 2: Let there be light!, 1/95
    3. Column 3: Texture Mapping, 3/95
    4. Column 4: Blending, Antialiasing, And Fog, 5/95
    5. Column 5: Extensions To OpenGL, 7/95
    6. Column 6: Hardware For Accelerating OpenGL, 9/95
    7. Column 7: Using Open Inventor with GLUT, 11/95
    8. Column 8: Curves and Surfaces in OpenGL, 1/96
    9. Column 9: EXIT: A 3D standard for X (finally!), 3/96

  10. MIPSpro 64-Bit Porting and Transition Guide, 3/96
    This document describes porting and transitioning to the MIPSpro 32-bit, 64-bit and high performance 32-bit (N32) compilers, and how to employ them with IRIX 6.2, as well as providing techniques for tuning the performance of your R8000 applications.
    The chapters break out in the following topic areas:
    1. System and Compiler Overview
      • IRIX 6.2 Overview
      • Compiler System Components
      • Kuck and Associates Preprocessor (KAP)
      • Multiprocessing Support
    2. Language Implementation Differences
      • Native 64-Bit Subprogram Interface for MIPS Architectures
      • Fortran Implementation Differences
      • C Implementation Differences
    3. Source Code Porting
      • 64-Bit Fortran Porting Guidelines
      • 64-Bit C Porting Guideline
      • Fundamental Types for C
      • Assembly Language Coding Guidelines
    4. Compilation Issues
      • Environment Variables
      • Command Line Switches
      • Optimization Switches of the 64-Bit Compilers
      • Compilation Messages
      • Linking Your Application
    5. Runtime Issues
      • Runtime Differences
      • Extended MIPS Floating-Point Architecture
      • Application Bringup and Debugging
    6. Performance Tuning for the R8000
      • Software Pipelining
      • Matrix Multiply - A Tuning Case Study
      • The Effect of Bellows Stalls
      • Use of the IVDEP Directive
      • Vector Intrinsic Functions
    7. Miscellaneous FAQ

  11. Topics in IRIX Programming , 3/96
    This manual discusses several topics of interest to programmers writing applications for the IRIX operating system on Silicon Graphics computers, including memory management, interprocess communication, models of parallel computation, file and record locking, font access, and internationalization.
    This manual contains the following chapters:
    • Chapter 1, "Process Address Space,"
      tells how the virtual address space is created and how objects are mapped into it.
    • Chapter 2, "Interprocess Communication,"
      describes System V and IRIX interprocess communication mechanisms.
    • Chapter 3, "Models of Parallel Computation,"
      gives an overview of the different ways you can specify parallel execution in Silicon Graphics systems.
    • Chapter 4, "File and Record Locking,"
      describes how to lock and unlock files and parts of files from within a program.
    • Chapter 5, "Working With Fonts,"
      discusses typography and font use on Silicon Graphics computers, and describes the Font Manager library.
    • Chapter 6, "Internationalizing Your Application,"
      explains how to create an application that can be adapted for use in different countries.
    • Appendix A, "ISO 3166 Country Names and Abbreviations,"
      lists country codes for use with internationalization and localization.
    • Appendix B, "Converting PVM Applications to MPI,"
      documents the methods of porting a PVM-based application to MPI.
    This manual assumes you are writing an application that executes under IRIX version 6.2 or later, and that you are familiar with the programming conventions of UNIX in general and IRIX in particular.

  12. SGI Freeware versions 1.0 and 2.0:
    The list from both these releases -- more than 85 software packages built on IRIX 5.3 and/or IRIX 6.2 -- is so vast we have elected for the moment to "cheap out" and simply include the above pointer to the entry point in the public parent directory to send those with an interest in these burnin' items on to that threshold.
    --> DON'T FORGET TO INSTALL THE tardist PROGRAM!!!

  13. (Almost) All About SCSI, 3/95
    This article covers a number of frequent questions about and problems with SCSI (Small Computer System Interface) devices on the various SGI platforms and releases, as well as some background information about SCSI. It is not intended as a general SCSI tutorial. Unfortunately, there are very few books available on the market that discuss SCSI, and the existing documents tend to be more implementors' notes than tutorials.
    The article starts with a general overview of SCSI and defines some terms that will be used later. The focus will be more on the electrical and physical aspects than the logical aspects, since that is where most customers seem to have problems. Although much of the information presented in this article is specific to the more recent releases of IRIX (IRIX 5.x and IRIX 6.0.x), in general, the information is applicable to all IRIX releases

  14. efscopy, a powerful tool to VERY quickly clone an entire disk's contents. efscopy provides FAST disk-cloning--faster than partition-to-partition copy of sash cp (see Advanced Site and Server Guide); restore an efscopy'ed image file onto multiple target devices simultaneously, e.g. sash cp can't do what efscopy file target1 target2 ... can do.

  15. SGI Education Class Source includes:

  16. DSOsecurity - DSO Function Authentication.
    An example of how to protect DSO function calls from being intercepted or replaced. An application or licensing code developer can use DSOauth in their application such that they can protect their DSO function calls from being intercepted or replaced (eg. preventing substitution of the gettimeofday call in a license verification routine) without giving up any of the features of DSOs.

  17. Volume Rendering:
    includes the two exceedingly impressive implementations:

  18. Installing and Running IRIX on a Drive Other Than Drive 1,
    describes two techniques: installing IRIX on a disk drive other than the one configured as SCSI device 1, and booting from a disk drive other than the system disk. In addition, this article documents related features of the PROM monitor, sash, and the miniroot.

  19. cineswipe,
    allows you to record your GL or OpenGL based application's graphics into a digital movie file (SGI, QuickTime, JPEG) without touching the application itself. This functionality is exemplified by a technique for substituting DSO functions in any DSO-based application.

  20. IRIX(TM) Device Driver Programming Guide:

  21. Hardware Developers Handbook, Version 1.0, 1995
    Identifying Silicon Graphics workstations and knowing what kind of interfaces they contain can be a difficult problem. It's the purpose of this document to help in that quest.
    This document is organized so that information about the broad range of SGI systems is collected here in one document. Reading through the information from front to back will progress from general information about SGI systems to the more specific information about particular interfaces. Along the way terminology will be defined that will help in identifying systems, options and interfaces available. These definitions are also listed in the Lexicon of Terms.
    This document covers all the "4D", Mips RISC-based systems from the original 4D/60 to the Indy. The IRIS systems that contained the Motorola 680X0 processors with models numbers like 1000, 1400, 2400, 3000 and 3030 are not covered here.

    --> Expecations are that Version 1.1 in HTML format will be available in the fall of 1996.

Copyright © 1995-96, Silicon Graphics, Inc.